/*
7-197 矩阵转置运算
分数 10
作者 Ma
单位 山东科技大学

在数学中，矩阵（Matrix）是一个按照长方阵列排列的复数或实数集合，最早来自于方程组的系数及常数所构成的方阵。

矩阵的转置是矩阵的一种运算，设A为m×n阶矩阵（即m行n列），第i 行j 列的元素是a(i,j)，把m×n矩阵A的行换成同序数的列得到一个n×m矩阵，此矩阵叫做A的转置矩阵。
输入格式:

N；//矩阵的行数
....
....//矩阵中的元素
输入样例:

4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4

输出样例:

1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
*/

#include <stdio.h>

int main() {
    int N;
    scanf("%d", &N);
    int matrix[N][N];
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            scanf("%d", &matrix[i][j]);
        }
    }
    // 不需要额外的空间，直接转置输出即可
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N - 1; j++) {
            printf("%d ", matrix[j][i]);
        }
        printf("%d\n", matrix[N - 1][i]);
    }
    return 0;
}